276035 - FrontEnd 개발자 찾기
info
- 문제 보기: 276035 - FrontEnd 개발자 찾기
- 소요 시간: 8분 52초
- 풀이 언어:
mysql
- 체감 난이도: 3️⃣~4️⃣
- 리뷰 횟수: ✅
풀이 키워드
스포주의
JOIN
&
풀이 코드
WITH FE AS (
SELECT SUM(CODE) AS SUM_CODE
FROM SKILLCODES
WHERE CATEGORY = 'Front End'
)
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS D
JOIN FE F
ON F.SUM_CODE & D.SKILL_CODE > 0
ORDER BY ID;
풀이 해설
DEVELOPERS
의 스킬이 전부 SKILL_CODE
에 비트테이블 식으로 저장되어있는데
여기서 비트마스킹을 통해 FE 스킬을 가지고 있는지 확인해서 추리는 문제이다.
풀이 순서
- 모든 FE 스킬 코드를 하나의 코드로 합산해서
FE
테이블 생성 DEVELOPERS
의 스킬 코드와FE
의 코드를 bitwise and해서 양수일때만INNER JOIN
- ID로 오름차순 정렬
메모
- 서브쿼리는 가독성에 좋지 않으므로
WITH
를 활용하자 - FE가 테이블이라서
WHERE
가 아니라JOIN
을 써야 함 ON
에 비트연산자 넣을 수 있는거 첨 알음